home *** CD-ROM | disk | FTP | other *** search
-
-
- map.device und Dummy-Handler
- ############################
-
- Version 1.0 (10.10.90)
- von
-
- Bernhard Möllemann
- Spöcker Weg 23c
- 7514 Eggenstein
-
- E-Mail: s_moellemann@iravcl.ira.uka.de
-
-
-
-
- I. Disclaimer:
- ==============
-
- Das map.device und der Dummy-Handler sind Freeware und dürfen nur für
- nicht-gewerbliche Zwecke frei kopiert und benutzt werden, solange folgende
- Bestimmungen eingehalten werden:
-
- 1. map.device und Dummy-Handler dürfen nur zusammen mit diesem
- Dokumentationsfile verbreitet werden.
-
- 2. Das Dokumentationsfile darf nur auf elektronischen Datenträgern
- (Diskette usw.) und nur zusammen mit dem map.device und dem
- Dummy-Handler verbreitet werden.
-
- 3. Der Preis für die Weitergabe darf die Kopierkosten nicht übersteigen.
-
-
-
- II. Anleitung:
- ==============
-
- Das map.device erlaubt in Verbindung mit dem Dummy-Handler die Bearbeitung
- des Speichers von einem Diskettenmonitor aus, der verschiedene Devices wie
- Festplatte oder resetfeste Ramdisk bearbeiten kann.
-
- Das map.device kann auch als Ramdisk verwendet werden, indem man es auf
- einen dem System unbekannten Speicherbereich legt.
-
-
- 1. Die Installation:
- --------------------
-
- Wie alle diskresidenten Devices (printer.device usw.) muß auch das
- map.device in den Devs:-Ordner kopiert werden:
-
- 1> copy map.device Devs:
-
- Um als Diskette erkannt zu werden, benötigt das System einen File-Handler,
- den Dummy-Handler. Dieser muß nach L: kopiert werden:
-
- 1> copy Dummy-Handler L:
-
- Damit AmigaDOS mit dieser "Diskette" arbeiten kann, muß diese gemounted
- werden:
-
- 1> mount MAP: FROM MapMountList
-
- Natürlich kann man die MountList an seine eigene MountList im
- Devs:-Verzeichnis anhängen und dann mit "mount MAP:" mounten. Nur wer das
- nicht möchte, muß den "FROM"-Parameter mit angeben (Achtung, erst ab dem
- 1.3 Mount-Befehl!).
-
-
- 2. Der MountList-Eintrag:
- -------------------------
-
- MAP: FileSystem = L:Dummy-Handler
- Device = map.device
- Unit = 0
- Flags = 0
- Surfaces = 1
- BlocksPerTrack = 128
- Priority = 7
- Reserved = 2
- Interleave = 0
- LowCyl = 0
- HighCyl = 255
- Buffers = 1
- BufMemType = 1
- Mount = 1
- GlobVec = -1
- StackSize = 512
- #
-
-
- FileSystem:
- Damit das AmigaDOS nicht auf die Idee kommt, irgendetwas im Speicher des
- Amiga zu ändern (z. B. ihn zu validaten), muß ein Handler angegeben
- werden, der garantiert nichts anstellt.
-
- Device:
- Hier muß natürlich der Devicename angegeben werden.
-
- Unit:
- Hier sollte eine "0" stehen.
-
- Flags:
- Auch hier sollte wieder eine "0" stehen.
-
- Surfaces:
- Der hier eingetragene Wert ist eigentlich egal, muß aber größer als Null
- sein.
-
- BlocksPerTrack:
- Auch dieser Wert muß größer als Null sein. Praktisch ist es, wenn
- Surfaces*BlocksPerTrack 128 ergibt. Dann nämlich entspricht ein
- Cylinder den Adress-Bits 23 bis 16, so daß man bei Diskettenmonitoren im
- Cylinder nur noch die ersten beiden Hex-Ziffern eingeben muß, um an die
- entsprechende Adresse zu gelangen.
-
- Eine Kickstart (bis 1.3) beispielsweise liegt bei $FC0000. Cylinder $FC
- (Head 0, Sector 0) spricht dann genau diese Adresse an (siehe auch
- LowCyl und HighCyl).
-
- Priority:
- Hierbei handelt es sich um die Priorität, mit der der Handler-Prozess
- gestartet wird. Sie liegt für gewöhnliche Amiga-File-Systeme bei 10.
- Da dieser Handler nicht sehr viel zu tun hat, sollte er eine Priorität
- von 7 erhalten.
-
- Reserved:
- Normalerweise ist hier die Anzahl der Bootblöcke angegeben. Da diese
- "Diskette" über keine Bootblöcke verfügt, sollte eine "0" angegeben
- werden.
-
- Interleave:
- Hier sollte eine "0" stehen.
-
- LowCyl:
- Hier kann die Anfangsadresse der "Diskette" angegeben werden. Wenn man
- den Wert, der hier steht, mit "Surfaces*BlocksPerTrack*512"
- multipliziert, so erhält man die Adresse des ersten Bytes, auf das man
- zugreifen kann. Um auf den gesamten Speicherbereich zugreifen zu
- können, sollte man hier eine "0" eintragen.
-
- HighCyl:
- Entspricht im Wesentlichen "LowCyl", jedoch wird hier die Endadresse
- angegeben. Für normale Amigas empfiehlt sich der Wert "255", so daß der
- gesamte Speicher, bis zur Endadresse der Kickstart, bearbeitet werden
- kann. Für Amigas, die mit einem 68012 oder größer aufgerüstet sind,
- kann der Wert auf "65535" erhöht werden. Wenn dann jedoch ein Programm
- Speicher für die Bitmap der "Diskette" belegen muß, braucht der Amiga
- mindestens 1MB freien Speicher.
-
- Buffers:
- Dieser Wert wird vom Dummy-Handler ignoriert und kann beliebig belegt
- werden.
-
- BufMemType:
- Das sind die Memory-Flags für den Speicher, in den das map.device
- schreiben kann. Da das map.device in jede Art Speicher schreibt, sollte
- hier "1" (MEMF_PUBLIC) stehen.
-
- Mount:
- Je nachdem, ob das FileSystem sofort oder erst bei der ersten Benutzung
- gestartet werden soll, muß hier "1" oder "0" stehen.
-
- GlobVec:
- Da es sich hierbei nicht um ein BCPL-Programm handelt, wird eine "-1"
- eingetragen. Wer etwas anderes einträgt, braucht sich nicht zu wundern,
- wenn die Maschine crasht!
-
- StackSize:
- Hier steht die Größe des Stacks, der für den Handler-Prozess angelegt
- wird. Für den Dummy-Handler sind 512 Bytes mehr als genug.
-
-
- 3. Funktionsweise:
- ------------------
-
- Das map.device ist ein blockorientiertes Device. Das heißt, daß es nur mit
- Vielfachen von 512 Bytes umgehen kann. Bei Read oder Write werden also
- immer komplette Blöcke gelesen und geschrieben. Deshalb ist es auch nicht
- möglich, nur einzelne Bytes zu schreiben. Aus diesem Grunde sollte man
- nicht in den Bereich der Customchips schreiben oder sie auslesen, auch wenn
- man nur "erlaubte" Words ändert/liest. Wer es trotzdem tut, ist an
- eventuellen Abstürzen des Rechners selber schuld!
-
- Bereiche, die man meiden sollte sind:
-
- $B00000 bis $E00000
- $E80000 bis $F00000
-
- Der erste dieser Bereiche ist bei den momentanen Amiga-Versionen zwar nicht
- völlig belegt, in zukünftigen Versionen ist aber damit zu rechnen, daß auch
- hier Customchips liegen können.
-
- In den zweiten Bereich können AUTOCONFIG(TM)-Karten mit IO-Bereichen
- hinkonfiguriert worden sein. Wer trotzdem hier hineinschreibt, sollte sich
- schon SEHR gut mit seinem Rechner auskennen, sonst schickt er eventuell
- ungewollt Befehle wie Format an seine Festplatte oder ähnliches.
-
-
- 4. Dummy-Handler und Ram-Disk
- -----------------------------
-
- Damit das Device überhaupt gemountet werden kann, braucht man einen
- File-Handler. "Gewöhnliche" File-Handler haben jedoch die hier unangenehme
- Angewohnheit, sich überall einmischen zu wollen, und aktivieren zum
- Beispiel den Disk-Validator, der hier versuchen könnte, den Speicher so zu
- "reparieren", daß er wie eine Diskette aussieht. Was das für Folgen haben
- würde, kann sich jeder selber ausrechnen.
-
- Damit das eben nicht passiert, entstand der Dummy-Handler, der mit
- Sicherheit nicht auf das Device zugreift, sondern sich schön still im
- Hintergrund hält.
-
- Wer jedoch einen unangemeldeten Speicherbereich - wie oben erwähnt - als
- Ramdisk verwenden möchte, darf in der Mountlist als "FileSystem" nicht den
- Dummy-Handler eintragen, da hier ja nichts passieren würde. Je nachdem, ob
- man mit dem alten Filesystem oder dem Fastfilesystem arbeiten möchte, trägt
- man stattdessen entweder gar nichts ein, oder "L:FastFileSystem". (Unter
- AmigaDOS 2.0 sollte man nicht einmal das tun. Es reicht als DosType für
- das alte Filesystem "0x444F5300" und beim FFS "0x444F5301" anzugeben.) Bei
- der Verwendung des alten Filesystems unter KickStart 1.3 muß zusätzlich
- der Eintrag "Globvec=-1" gelöscht werden.
-
- Wenn man ein "richtiges" Filesystem benutzen möchte, sollte man die Anzahl
- der Puffer ("Buffers") auf einen Wert von ca. 5 heraufsetzen, sonst
- verringert sich die Zugriffszeit unnötig.
-
-